// pages/citylist/citylist.js
const map = require('../../libs/map')
console.log(map) // map是一个object
// 引入qqmapsdk 
const QQMapWX = require('../../libs/qqmap-wx-jssdk')
let qqmapsdk = new QQMapWX({key : 'A7CBZ-FZ73U-PUPV7-BINEG-ICD57-KAB6J'})

Page({

    /** 页面的初始数据 */
    data: {
        locSuccess: false,  // 表示否是已经定位成功
        cityname: '加载中...', // 当前城市名称
        letter: 'A', // 当前滚动到的字母位置
        citymap: map // 存储了所有城市信息
    },
    /** 点击侧边栏导航 */
    tapAsideNav(event){
        let letter = event.target.dataset.letter
        console.log(letter)
        this.setData({letter})
    },

    /** 点击城市名称 执行 */
    tapCity(event){
        let city = event.target.dataset.city
        if (city==undefined) return;
        // 存入globalData
        getApp().globalData.cityname = city
        wx.navigateBack()
    },

    /** 加载当前定位 */
    getLocation(){
        this.setData({cityname: '加载中...'})
        qqmapsdk.reverseGeocoder({
            success:(res)=>{
                let cityname=res.result.address_component.city
                this.setData({cityname:cityname})
                // 将cityname存入globalData.cityname变量
                getApp().globalData.cityname = cityname
                // 修改变量  定位成功
                this.data.locSuccess = true
            },
            fail: (err)=>{
                console.warn(err)
                if(err.status==1000){
                    this.setData({cityname:'定位失败, 点击重试'})
                }
                // 弹窗提示没有权限, 是否重新授予权限
                this.showLocDialog()
            }
        })
    },
    /** 弹窗提示用户 没有权限, 是否重新授予权限 */
    showLocDialog(){
        wx.showModal({
            title: '提示',
            content: '未赋予定位权限，是否重新授予相关权限？',
            success: (res)=>{
                console.log(res)  
                if(res.confirm){ // 用户点了确认
                    wx.openSetting({
                        success:(settingRes)=>{
                            console.log(settingRes)
                            // 如果用户已经重新赋予权限, 就重新定位即可
                            if(settingRes.authSetting['scope.userLocation']){
                                this.getLocation()
                            }
                        }
                    })
                }
            }
        })
    },

    /** 点击定位城市名称 
     *  1. 若已经定位, 则直接返回
     *  2. 若定位失败, 则点击重试 */
    tapLoc(){
        if(this.data.locSuccess){
            wx.navigateBack()
        }else{
            this.getLocation()
        }
    },

    /** 生命周期函数--监听页面加载 */
    onLoad: function (options) {
        this.getLocation()
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady: function () {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow: function () {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide: function () {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload: function () {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh: function () {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom: function () {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage: function () {

    }
})